from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
from aimodel import tongyi_model

# 普通生成链，生成修改内容
def gen_chain(query: str):
    chain = RunnablePassthrough() | tongyi_model | StrOutputParser()
    res = ""
    for r in chain.stream(query):
        res += r
        print(r, end="")
    return res

if __name__ == "__main__":
    language = "英文"
    text = "外源因子系经无意中引入于接种物、细胞基质和(或)生产制品所用的原材料及制品中的、可复制或增殖的污染物，包括细菌、真菌、支原体和病毒等。"
    TRANSLATIONPROMPT = (
        f"你是一个翻译家，擅长将文本从中文翻译成 {language}。请确保翻译保持流畅和自然，同时保留原文的含义。"
        "以下是一段json字符串:\n"
        f"{text}\n"
        f"请你将其中的text字段的内容翻译为{language}\n"
        "要求：\n"
        f"1.尽量避免直译，而是在理解原文内容的基础上进行意译，使翻译更加贴近{language}的表达习惯，不要有中文。\n"
        f"2.只用返回这段json字符串的翻译结果，不需要返回其他内容。如果是text字段的内容是数字符号单位，请直接返回原json。\n"
    )

    gen_chain(f"{TRANSLATIONPROMPT}")